package cn.nawang.ebeim.api.service;

import cn.nawang.ebeim.api.comm.PageList;
import cn.nawang.ebeim.api.comm.Pages;
import cn.nawang.ebeim.api.domain.Department;

/**
 * @ClassName: DepartmentService
 * @Description: TODO
 * @author 许炜毅
 * @date 2015年8月7日 下午5:49:40
 * @version v1.0
 */
public interface DepartmentService {

  /**
   * @author 许炜毅
   * @Description 获取部门列表
   * @param page
   * @return PageList 
   * @date 2015年8月7日下午5:50:09
   *
   * @修改人 
   * @修改日期
   */
  public PageList getDepartmentList(Pages page);
  
  /**
   * @author 许炜毅
   * @Description 根据传入的部门名称，判断是否存在重复的
   * @param name 部门名称
   * @param customerId 客户编号
   * @return Department 
   * @date 2015年8月7日下午6:11:05
   *
   * @修改人 
   * @修改日期
   */
  public Department getDepartmentByName(String name,String customerId);
  
  /**
   * @author 
   * @Description: TODO
   * @param name 部门名称
   * @param id 部门编号
   * @param customerId 客户编号
   * @return Department 
   * @date 2015年8月10日下午3:12:31
   *
   * @修改人 
   * @修改日期
   */
  public Department getDepartmentByNameNotId(String name,int id,String customerId);
  
  /**
   * @author 许炜毅
   * @Description 根据部门编号，获取对象
   * @param departId
   * @return Department 
   * @date 2015年8月7日下午6:19:57
   *
   * @修改人 
   * @修改日期
   */
  public Department getDepartmentById(int departId);
  
  /**
   * @author 许炜毅
   * @Description 新增部门
   * @param dept
   * @param customerId
   * @return boolean 
   * @date 2015年8月7日下午6:05:07
   *
   * @修改人 
   * @修改日期
   */
  public boolean saveDept(Department dept,String customerId,String createUserId);
  
  /**
   * @author 许炜毅
   * @Description 修改部门信息
   * @param dept
   * @param updateUserId
   * @return boolean 
   * @date 2015年8月10日下午3:10:05
   *
   * @修改人 
   * @修改日期
   */
  public boolean update(Department dept,Department oldObj,String updateUserId);
  
  /**
   * @author 许炜毅
   * @Description 删除部门信息
   * @param id
   * @return boolean 
   * @date 2015年8月10日下午2:28:30
   *
   * @修改人 
   * @修改日期
   */
  public boolean delete(int id);
  
  /**
   * 
   * @author fanyb
   * @Description: 根据id查找所有子的id字符串（数据库查询字符串形式）
   * @param id
   * @return String 
   * @date Oct 21, 201510:44:03 AM
   *
   * @修改人 
   * @修改日期
   */
  public String findById(int id);
  
}
